MCP 서버의 프롬프트를 사용하면 클라이언트가 처음부터 직접 프롬프트를 작성하는 대신 사용할 수 있는 사전 구축된 고품질 지침을 정의할 수 있습니다. 사용자가 스스로 생각해낼 수 있는 것보다 더 나은 결과를 제공하는 신중하게 만들어진 템플릿이라고 생각하세요.
프롬프트를 사용하는 이유
핵심 인사이트는 다음과 같습니다: 사용자는 이미 대부분의 작업을 Claude에게 직접 요청할 수 있습니다. 예를 들어, 사용자가 "report.pdf를 마크다운으로 다시 포맷해 주세요"라고 입력하면 괜찮은 결과를 얻을 수 있습니다. 하지만 엣지 케이스를 처리하고 모범 사례를 따르는 철저히 테스트된 전문 프롬프트를 제공하면 훨씬 더 나은 결과를 얻을 수 있습니다.
MCP 서버 작성자로서, 다양한 시나리오에서 일관되게 작동하는 프롬프트를 만들고, 테스트하고, 평가하는 데 시간을 투자할 수 있습니다. 사용자는 스스로 프롬프트 엔지니어링 전문가가 되지 않고도 이 전문성의 혜택을 받습니다.
포맷 명령 만들기
실용적인 예제를 구현해 봅시다: 문서를 마크다운으로 변환하는 포맷 명령입니다. 사용자가 /format doc_id를 입력하면 전문적으로 포맷된 마크다운 버전의 문서를 돌려받습니다.
워크플로는 다음과 같습니다:
- 사용자가
/를 입력하여 사용 가능한 명령을 확인합니다
format을 선택하고 문서 ID를 지정합니다
- Claude가 사전 구축된 프롬프트를 사용하여 문서를 읽고 다시 포맷합니다
- 결과는 적절한 헤더, 목록, 서식이 포함된 깔끔한 마크다운입니다
프롬프트 정의하기
프롬프트는 도구 및 리소스와 유사한 데코레이터 패턴을 사용합니다:
@mcp.prompt(
name="format",
description="Rewrites the contents of the document in Markdown format."
)
def format_document(
doc_id: str = Field(description="Id of the document to format")
) -> list[base.Message]:
prompt = f"""
Your goal is to reformat a document to be written with markdown syntax.
The id of the document you need to reformat is:
<document_id>
{doc_id}
</document_id>
Add in headers, bullet points, tables, etc as necessary. Feel free to add in structure.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
return [
base.UserMessage(prompt)
]
함수는 Claude에게 직접 전송되는 메시지 목록을 반환합니다. 더 복잡한 대화 흐름을 만들기 위해 여러 사용자 및 어시스턴트 메시지를 포함할 수 있습니다.
프롬프트 테스트하기
배포 전에 MCP 검사기를 사용하여 프롬프트를 테스트하세요:
검사기는 변수가 프롬프트 템플릿에 어떻게 보간되는지를 포함하여 Claude에게 전송될 메시지를 정확히 보여줍니다. 이를 통해 사용자가 의존하기 전에 프롬프트가 올바른지 확인할 수 있습니다.
주요 이점
- 일관성 - 사용자가 매번 신뢰할 수 있는 결과를 얻습니다
- 전문성 - 도메인 지식을 프롬프트에 인코딩할 수 있습니다
- 재사용성 - 여러 클라이언트 애플리케이션이 동일한 프롬프트를 사용할 수 있습니다
- 유지보수 - 한 곳에서 프롬프트를 업데이트하여 모든 클라이언트를 개선합니다
프롬프트는 MCP 서버의 도메인에 특화될 때 가장 잘 작동합니다. 문서 관리 서버는 문서 포맷, 요약 또는 분석을 위한 프롬프트를 가질 수 있습니다. 데이터 분석 서버는 보고서나 시각화를 생성하기 위한 프롬프트를 가질 수 있습니다.
목표는 사용자가 처음부터 직접 지침을 작성하는 것보다 선호할 정도로 잘 만들어지고 테스트된 프롬프트를 제공하는 것입니다.